//
// Created by sjjmw on 3/24/2022.
//
#include "iostream"
#include "vector"
#include "list"
#include "algorithm"
#include "string"
#include "unordered_map"
#include "cmath"
#include<iomanip>
#include "string"
#include "map"
#include "list"
//核心思路是模拟报数，出队的做标记，扫描的时候跳过
struct Sol{
    void swap(char &c){
        if(c=='o'){
            c='*';
        }else{
            c='o';
        }
    }
    void handle(std::string a,std::string b){
        int cnt=0;
        for(int i=0;i<a.size()-1;i++){
            if(a[i]!=b[i]){
                swap(a[i]);
                swap(a[i+1]);
                cnt++;
            }
        }
        printf("%d\n",cnt);
    }
};
int main(){
    int a,b,c;
    std::string str1,str2;
    while (std::getline(std::cin,str1)){
        std::getline(std::cin,str2);
        Sol().handle(str1,str2);
    }
    return 0;
}